// lib/controllers/article_controller.dart
import 'package:get/get.dart';
import 'package:blog_chyk/models/article_model.dart';

class ArticleController extends GetxController {
  // 响应式数组存储文章列表（.obs让数据可观察，类似Vue的ref/reactive）
  final RxList<ArticleModel> articleList = <ArticleModel>[].obs;

  @override
  void onInit() {
    super.onInit();
    // 初始化时加载模拟数据（对应Vue的onMounted）
    loadMockArticles();
  }

  // 加载本地模拟数据（后续可替换为网络请求）
  void loadMockArticles() {
    // 模拟3条文章数据
    final mockData = [
      ArticleModel(
        id: '1',
        title: 'Flutter GetX入门教程',
        author: 'Chyk',
        content: 'GetX是Flutter中轻量高效的状态管理和路由管理库，集成了状态管理、路由、依赖注入等功能...',
        date: '2024-05-20',
      ),
      ArticleModel(
        id: '2',
        title: 'Vue开发者快速上手Flutter',
        author: 'Chyk',
        content: 'Vue和Flutter有很多相似之处，比如组件化、响应式编程... 本文分享Vue开发者快速转型Flutter的技巧',
        date: '2024-05-22',
      ),
      ArticleModel(
        id: '3',
        title: 'Flutter项目目录规范',
        author: 'Chyk',
        content: '合理的目录结构能提高项目可维护性，本文推荐一套适合中大型Flutter项目的目录规范...',
        date: '2024-05-25',
      ),
    ];

    // 更新响应式数据（自动触发视图刷新，类似Vue的state更新）
    articleList.assignAll(mockData);
  }
}
